A variation on Once that can be used as a metaclass
Usage:
class outer(object):
class inner(object):
__metaclass__ = OnceClass
def __init__(self, obj, instDict, attrName):
...
When anOuterInstance.inner is accessed, an instance of
inner will be created and cached in the instance dictionary,
as per Once. See Once for more details on the mechanics.
The class name will serve as a default attribute name.